如何在 Linux 命令行中运行 Bash Shell 脚本 您所在的位置:网站首页 linux sh执行 如何在 Linux 命令行中运行 Bash Shell 脚本

如何在 Linux 命令行中运行 Bash Shell 脚本

#如何在 Linux 命令行中运行 Bash Shell 脚本| 来源: 网络整理| 查看: 265

如何在 Linux 命令行中运行 Bash Shell 脚本

运行 bash shell 脚本非常简单。但在本教程中,您还可以了解如何在 shell 而不是子 shell 中运行它们。

“当你可以尝试自动化 5 个小时的时候,永远不要花 5 分钟手工做某件事。”

这可能是讽刺,因为自动化可能比手动执行需要更长的时间,但自动化对于高级 Linux 用户来说是必要的。 Shell 脚本构成了 Linux 自动化的基础。

运行 bash shell 脚本的最简单方法是:

bash path_to_script

然而,更流行的方法是向脚本授予执行权限,然后像这样运行脚本:

chmod u+x script.sh ./script.sh

让我一步步详细解释这一点。

在 Ubuntu 中运行 Shell 脚本

首先,让我们创建一个简单的 bash 脚本。我将创建一个有用的 bash 脚本来显示可用的磁盘空间和 RAM:

#!/bin/bash # Script that shows the available disk space and memory # Disk space echo -e "FREE DISK SPACE" df -h /dev/sda # Memory (RAM) echo -e "\nFREE MEMORY" free -h # Process ID or PID echo -e "\nPID = $$"

该脚本打印可用磁盘空间(在 /dev/sda 中)、内存和 shell 的进程 ID。我将其另存为“freespace.sh”。

要执行此脚本,您应该为其授予执行权限,这可以使用 chmod 命令来完成。语法是:

chmod +x shell_script.sh📋如果您不在脚本所在的目录中,请确保键入脚本文件的绝对路径。

这里,我给系统中的所有用户授予了执行这个脚本的执行权限。这就是 +x 标签的含义。 ls -l 命令列出文件的属性,包括权限。

您还可以使用u+x,它只向您授予执行权限。

最后,通过以下语法执行脚本:

./shell_script.sh

是的,这是执行 shell 脚本的一种简单方法。这适用于所有需要在不调用解释器的情况下执行的脚本!

您可以在此处阅读有关 Linux 中文件权限的更多信息。

或者,使用口译员

每种脚本语言都有一个解释器,它直接执行脚本文件中的每一行。如果脚本文件中存在错误,则执行将在该特定行处停止(在执行前面的行之后)。

要使用解释器执行脚本,我们不需要更改文件的权限。

对于 shell 脚本,您可以调用您正在使用的 shell。由于我使用的是 bash 并且编写了 bash 脚本,因此我将调用 sh 或 bash。

要执行脚本,您可以使用解释器调用它。

bash ./shell_script.sh

或者

sh ./shell_script.sh

您可以在此处键入相对路径或绝对路径。

使用source命令在当前shell中运行脚本

默认情况下,shell 脚本在子 shell 中运行。有时,您可能想在同一个 shell 中运行脚本。这就是 source 命令的用武之地。

使用此命令,您可以将某些内容包含到同一个 shell 中。这主要用于更新对 bashrc 等文件所做的更改,而无需退出 shell。

您也可以用它执行脚本,如下所示:

source ./shell_script.sh

变量 $$ 可用于查找您正在使用的当前 shell 的进程 ID。这就是上面所示的示例脚本中所做的事情。

请注意,脚本和父 shell 的进程 ID (PID) 相同,这意味着脚本在同一个 shell 中运行,而不是在新的子 shell 中运行。

点运算符(.)

在同一个 shell 而不是子 shell 中执行脚本的另一种方法

点 (.) 代表您正在使用的 shell,后面跟着您想要执行的脚本。

. ./shell_script.sh

额外提示:在执行时调试脚本

使用解释器方法,您可以查看执行了哪些命令,调试脚本中的错误,并找到执行失败的部分。

为此,您可以使用详细模式 (-v) 或 xtrace 模式 (-x) 来查看正在执行哪些语句。

详细模式显示各个命令执行之间的整个脚本。您可以看一下下面的图片以供参考。

Xtrace模式用于跟踪脚本中每个命令的执行情况。这里的 + 符号显示执行之前的命令(而 ++ 用于描述“执行”命令)。

包起来

我希望您喜欢这个关于执行 bash 脚本的基本但重要的教程。

如果您不熟悉 Bash 脚本编写,我们为您准备了十章的 Bash 初学者系列。

如果您有疑问或建议,请告诉我。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有